﻿#pragma once

#include <iostream>
#include <string>
#include <fstream>
using namespace std;

// 作业编号 作业名称 提交时间 要求服务运行时间  开始时间 完成时间 等待时间 周转时间

struct Time
{
	int hour;
	int min;
};

istream& operator>>(istream& in, Time& t);

ostream& operator<<(ostream& out, const Time& t);

bool operator<(const Time& t1, const Time& t2);

bool operator>(const Time& t1, const Time& t2);

bool operator==(const Time& t1, const Time& t2);

bool operator<=(const Time& t1, const Time& t2);

Time operator-(const Time& t1, const Time t2);

Time operator+(const Time& t1, const Time t2);

Time operator+=(Time& t1, const Time t2);

int Time2int(Time);

Time int2Time(int);

class Job
{
public:
	Job();
	Job(const Job& a);
	void init_from_input();
	void set_num(int);
	void set_name(string);
	void set_sub_time(Time);
	void set_runtime(int);
	void set_start_time(Time);
	void set_finish_time(Time);
	void set_wait_time(int);
	void set_whole_time(int);
	Time get_sub_time();
	int get_runtime();
	int get_wait_time();
	void print_info();
	~Job();

private:
	int num;			// 作业编号
	string name;		// 作业名称
	Time submit_time;	// 提交时间
	int runtime;		// 要求服务运行时间

	Time start_time;	// 开始时间
	Time finish_time;	// 完成时间
	int wait_time;		// 等待时间，分钟
	int whole_time;		// 周转时间，分钟
};